import axios from 'axios'
const http= axios.create({
    timeout:3000, // 超时时间
    baseURL:'localhost:3001'
})

http.interceptors.request.use(config=>{
    // 每次发送请求之前可以通过参数做处理 添加token 加密 不同接口参数格式不一样等       
    
    console.log('request',config)      
    return config;  
  },error=>{
    return (Promise as any).error(error);
  });
  
  // http response 拦截器
  http.interceptors.response.use(
    response => {
      //拦截响应，做统一处理根据不同的相应对相应数据做处理 登录失效 清空信息重新登陆，只返回数据 不用返回code值 请求时容易解析
      console.log('response',response)
      return response.data
    },
    //接口错误状态处理，也就是说无响应时的处理
    //这里的状态码可以和后台协商好后统一做处理
    error => {
      switch(error.response.status){
        case 401:
            //token失效，重新登录
            
        break;
        //...
        //其他错误状态码的逻辑处理
      }
      return Promise.reject(error.response.status) // 返回接口返回的错误信息
    }
  )
export default {
    http:http,
    install(Vue:any){
        Vue.config.globalProperties.$http = http
    }
}